home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / recent / warpup1.lha / WarpUP-WarpOS / Source / pixelOmania.p < prev    next >
Text File  |  1997-09-18  |  3KB  |  166 lines

  1.         incdir  include:
  2.         incdir  lvo:
  3.  
  4.         include intuition/intuition.i
  5.         include devices/timer.i
  6.         include powerpc/ppcmacros.i
  7.         include powerpc/powerpc.i
  8.  
  9.         include exec_lib.i
  10.         include dos_lib.i
  11.         include intuition_lib.i
  12.         include graphics_lib.i
  13.         include powerpc_lib.i
  14.  
  15.         xref    _PowerPCBase
  16.         xref    _SysBase
  17.         xref    _DOSBase
  18.         xref    _LinkerDB
  19.  
  20.         smalldata
  21.         executable
  22.         escapestr
  23.  
  24.         section "PixelOMania",code
  25.  
  26. WINDOWWIDTH     =       200
  27. WINDOWHEIGHT    =       100
  28.  
  29. start
  30.         prolog
  31.         pushgpr r26-r31
  32.         la      r6,int_name
  33.         li      r3,0
  34.         RUN68K  _SysBase,OpenLibrary
  35.         tstw    r3
  36.         beq     .end
  37.         sw      r3,_IntuitionBase
  38.         la      r6,gfx_name
  39.         li      r3,0
  40.         RUN68K  _SysBase,OpenLibrary
  41.         tstw    r3
  42.         beq     .closeint
  43.         sw      r3,_GfxBase
  44.         la      r4,title
  45.         la      r22,Args
  46.         RUN68K_XL       _DOSBase,VPrintf
  47.         li      r5,0
  48.         la      r6,WindowTags
  49.         RUN68K  _IntuitionBase,OpenWindowTagList
  50.         tstw    r3
  51.         beq     .closegfx
  52.         sw      r3,_Window
  53.         lwz     r31,wd_UserPort(r3)
  54.         lwz     r29,wd_RPort(r3)
  55.         sw      r29,_RPort
  56.         li      r30,0
  57.         li      r28,0
  58.         li      r27,0
  59.         li      r26,1
  60.         la      r4,TimeVal1
  61.         CALLPOWERPC     GetSysTimePPC
  62. .loop
  63.         mr      r5,r31
  64.         RUN68K  _SysBase,GetMsg
  65.         tstw    r3
  66.         beq     .nomsg
  67.         lwz     r4,im_Class(r3)
  68.         liw     r5,IDCMP_MOUSEBUTTONS
  69.         and.    r4,r4,r5
  70.         beq     .nomsg
  71.         li      r30,-1
  72.         mr      r6,r3
  73.         RUN68K  _SysBase,ReplyMsg
  74. .nomsg
  75.         tstw    r30
  76.         bne     .abort
  77.         mr      r6,r29
  78.         mr      r3,r26
  79.         xori    r26,r26,2
  80.         RUN68K  _GfxBase,SetAPen
  81.         mr      r6,r29
  82.         mr      r3,r27
  83.         mr      r4,r28
  84.         RUN68K  _GfxBase,WritePixel
  85.         addi    r27,r27,1
  86.         cmplwi  r27,WINDOWWIDTH
  87.         blt     .loop
  88.         li      r27,0
  89.         addi    r28,r28,1
  90.         cmplwi  r28,WINDOWHEIGHT
  91.         blt     .loop
  92.         la      r4,TimeVal2
  93.         CALLPOWERPC     GetSysTimePPC
  94.         la      r4,TimeVal2
  95.         la      r5,TimeVal1
  96.         CALLPOWERPC     SubTimePPC
  97.         la      r4,TimeVal2
  98.         lwz     r0,TV_MICRO(r4)
  99.         push    r0
  100.         lwz     r0,TV_SECS(r4)
  101.         push    r0
  102.         la      r4,time
  103.         mr      r22,local
  104.         RUN68K_XL       _DOSBase,VPrintf
  105.         addi    local,local,8
  106.         b       .close
  107. .abort
  108.         la      r4,abort
  109.         la      r22,Args
  110.         RUN68K_XL       _DOSBase,VPrintf
  111. .close
  112.         lw      r5,_Window
  113.         RUN68K  _IntuitionBase,CloseWindow
  114. .closegfx
  115.         lw      r6,_GfxBase
  116.         RUN68K  _SysBase,CloseLibrary
  117. .closeint
  118.         lw      r6,_IntuitionBase
  119.         RUN68K  _SysBase,CloseLibrary
  120. .end
  121.         popgpr
  122.         epilog
  123.  
  124.  
  125.         section "PixelOMania",data
  126.  
  127. int_name        INTNAME
  128. gfx_name        GRAFNAME
  129. title           dc.b    "\nPixelOMania V1.0  18.9.97 by Sam Jordan\n"
  130.         dc.b    "---------------------------------------\n"
  131.         dc.b    "Measures the performance of CPU context switches\n"
  132.         dc.b    "In every iteration (for every pixel) four AMIGAOS\n"
  133.         dc.b    "system functions are called by the PowerPC\n\n"
  134.         dc.b    "Click on the window to abort the program\n"
  135.         dc.b    "Let's go:\n\n",0
  136. abort           dc.b    "Program aborted\n",0
  137. time            dc.b    "Time elapsed: %ld.%06ld seconds\n\n",0
  138.  
  139.  
  140.         cnop    0,4
  141.  
  142. WindowTags      dc.l    WA_Left
  143.         dc.l    100
  144.         dc.l    WA_Top
  145.         dc.l    100
  146.         dc.l    WA_Width
  147.         dc.l    WINDOWWIDTH
  148.         dc.l    WA_Height
  149.         dc.l    WINDOWHEIGHT
  150.         dc.l    WA_Activate
  151.         dc.l    -1
  152.         dc.l    WA_IDCMP
  153.         dc.l    IDCMP_MOUSEBUTTONS
  154.         dc.l    TAG_DONE
  155.  
  156.  
  157.         section "PixelOMania",bss
  158.  
  159. _IntuitionBase  ds.l    1
  160. _GfxBase        ds.l    1
  161. _Window         ds.l    1
  162. _RPort          ds.l    1
  163. TimeVal1        ds.b    TV_SIZE
  164. TimeVal2        ds.b    TV_SIZE
  165. Args            ds.l    2
  166.